package com.deprecated.patch;

import java.awt.GridLayout;
import java.awt.LayoutManager;

import javax.swing.JScrollPane;

import com.panopset.sf.Windoc;

/**
 * JTextArea persistent container.
 * 
 * @author Karl Dinwiddie
 * 
 */
public final class PanTextArea extends PanField<JScrollPane> {

	/**
	 * @param prompt
	 *            Prompt.
	 * @param toolTipText
	 *            Tool tip text.
	 * @param defaultValue
	 *            Default value.
	 */
	public PanTextArea(final Windoc wd, final String prompt,
			final String toolTipText, final String defaultValue) {
		this(wd, prompt, toolTipText, defaultValue, true);
	}

	public PanTextArea(final Windoc wd, final String prompt,
			final String toolTipText, final String defaultValue, boolean isPersistent) {
		super(wd, prompt, toolTipText, defaultValue);
		setFieldGui(new FieldGui() {

			@Override
			public String getValue() {
				return getTextArea().getText();
			}

			@Override
			public void setValue(final String value) {
				getTextArea().setText(value);
			}
		});
	}

	@Override
	public JScrollPane createComponent() {
		return new JScrollPane(getTextArea());
	}

	private TTextArea ta;

	public TTextArea getTextArea() {
		if (ta == null) {
			ta = new TTextArea();
			ta.setToolTipText(ptoolTipText);
		}
		return ta;
	}

	@Override
	protected LayoutManager createLayout() {
		return new GridLayout(1, 1);
	}

	@Override
	protected boolean isValid(final String valueToCheck) {
		return true;
	}
}
